﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ModeloEntidades;
using AccesoDatos.DAO;

namespace LogicaControl
{
    public class Controlador_Tramite_Matriculacion : Controlador
    {
        // Atributos de manejo de instancia (singleton)
        static Controlador_Tramite_Matriculacion instance = null;
        //-----------------------------------------------------------------------------------------------
        private DAO_Tramite_Matriculacion miDAO_Tramite_Matriculacion = new DAO_Tramite_Matriculacion();
        //-----------------------------------------------------------------------------------------------
        public List<TramitesVista> obtener_vista_enCurso(string razon_social, string nombres_titular, string nombre_localidad, string nombre_departamento)
        {
            List<Tramite_Matriculacion> tramites_enCurso = obtener_enCurso(razon_social, nombres_titular, nombre_localidad, nombre_departamento);

            List<TramitesVista> vistasTramites = new List<TramitesVista>();

            foreach (Tramite_Matriculacion unTramite_enCurso in tramites_enCurso)
            {
                vistasTramites.Add(new TramitesVista(unTramite_enCurso));
            }

            return vistasTramites;

        }

        public List<Tramite_Matriculacion> obtener_enCurso(string razon_social, string nombres_titular, string nombre_localidad, string nombre_departamento)
        {

            return miDAO_Tramite_Matriculacion.obtener_enCurso(razon_social, nombres_titular, nombre_localidad, nombre_departamento);

        }

        public List<Tramite_Matriculacion> obtener_enCurso()
        {
            
            return miDAO_Tramite_Matriculacion.obtener_enCurso();

        }

        public void eliminar(Tramite_Matriculacion tramite_eliminado)
        {
            miDAO_Tramite_Matriculacion.eliminar(tramite_eliminado);
        }
        //------------------------------------------------------------------------------------------
        public static Controlador_Tramite_Matriculacion Instance
        {
            get
            {
                if (instance == null)
                {
                    lock (padlock)
                    {
                        if (instance == null)
                        {
                            instance = new Controlador_Tramite_Matriculacion();
                        }
                    }
                }
                return instance;
            }
        }
    }
}
